/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package utilidades;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Vector;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import vistas.VistaPrincipal;

/**
 *
 * @author Bassist-s1
 */
public class LeerArchivo {

        private String ruta = "usuario.txt";
	private Vector usuarios = new Vector ();
	private int numeroUsuarios;


	public String getRuta () {
		return ruta;
	}

	public void setRuta (String ruta) {
		this.ruta = ruta;
	}

	public int getNumeroUsuarios () {
		return numeroUsuarios;
	}

	public void setNumeroUsuarios (int num_usuarios) {
		this.numeroUsuarios = num_usuarios;
	}

	public Vector getUsuario () {
		return usuarios;
	}

	public void setUsuario (Vector usuarios) {
		this.usuarios = usuarios;
	}

        //método el cual carga los datos del archivo respaldado por el usuario
        //va llenando las vistas según los datos leidos
        public boolean abrir_archivo (String usuarioActual, VistaPrincipal vista) throws FileNotFoundException, IOException
        {
                JFileChooser fileChooser = new JFileChooser();
                int seleccion = fileChooser.showOpenDialog(vista);
                if (seleccion == JFileChooser.APPROVE_OPTION)
                {
                    File fichero = fileChooser.getSelectedFile();
                    LeerArchivo leer_archivo = new LeerArchivo();
                    leer_archivo.setRuta(fichero.getPath());
                    String aux = new String ();
                    BufferedReader br=null;
                    br = new BufferedReader(new FileReader(fichero.getPath()));


                    aux = br.readLine();
                    if(!aux.equals(usuarioActual))
                        JOptionPane.showMessageDialog (null, "Usted no tiene permisos para abrir este archivo");
                    else
                    {
                        String corte[];
                        aux = br.readLine();
                        vista.cargarTamañoSoftware(aux);

                        aux = br.readLine();
			corte = aux.split ("#");
                        vista.cargarNumeroModulos(corte[0], corte[1]);

                        aux = br.readLine();
                        corte = aux.split("#");
                        vista.cargarUsuariosEvaluadores(corte[0], corte[1], corte[2], corte[3]);

                        aux = br.readLine();
                        vista.cargarLugarEvaluacion(aux);

                        aux = br.readLine();
                        corte = aux.split("#");
                        vista.cargarTiempoEmplear(corte[0], corte[1], corte[2]);
                        
                        aux = br.readLine();
                        corte = aux.split("#");
                        vista.cargarPeriodoEntrega(corte[0], corte[1], corte[2], corte[3]);

                        aux = br.readLine();
                        vista.cargarUF(aux);

                        aux = br.readLine();
                        corte = aux.split ("#");
                        vista.cargarGastosArriendo(corte[0], corte[1]);

                        aux = br.readLine();
                        corte = aux.split ("#");
                        vista.cargarGastosOperacionales(corte[0], corte[1]);

                        aux = br.readLine();
                        corte = aux.split ("#");
                        vista.cargarGastosMaterialApoyo(corte[0], corte[1]);

                        aux = br.readLine();
                        corte = aux.split ("#");
                        vista.cargarGastosInsumos(corte[0], corte[1]);


                        aux = br.readLine();
                        corte = aux.split ("#");
                        vista.cargarGastosBasicos(corte[0], corte[1]);


                        aux = br.readLine();
                        corte = aux.split ("#");
                        vista.cargarGastosMovilizacion(corte[0], corte[1]);

                        aux = br.readLine();
                        corte = aux.split ("#");
                        vista.cargarGastosCoffeBreaks(corte[0], corte[1]);

                        aux = br.readLine();
                        corte = aux.split ("#");
                        vista.cargarGastosAlimentacion(corte[0], corte[1]);


                        aux = br.readLine();
                        corte = aux.split ("#");
                        vista.cargarGastosServicios(corte[0], corte[1]);

                        aux = br.readLine();
                        corte = aux.split ("#");
                        vista.cargarGastosTotal(corte[0], corte[1]);

                        aux = br.readLine();
                        corte = aux.split ("#");
                        vista.cargarPaso2Reparacion(corte[0],corte[1],corte[2],corte[3]);

                        aux = br.readLine();
                        corte = aux.split ("#");
                        vista.cargarPaso2Final(corte[0],corte[1],corte[2]);
                        //se carga la vista panelPaso3
                        aux = br.readLine();
                        corte = aux.split ("#");
                        vista.cargarPaso3(corte[0],corte[1],corte[2],corte[3],corte[4],corte[5],corte[6],corte[7],corte[8]);

                    }
                }
                return true;
        }


	public boolean buscar (String nombre, String contraseña) throws Exception {
		String archivo = "usuario.txt";
		String aux = new String ();
		boolean retorno = false;
		int contador = 0;
		BufferedReader br = new BufferedReader (new FileReader (archivo));
		while ((aux = br.readLine ()) != null) {
			contador++;
			String corte[];
			corte = aux.split ("#");
			if (corte[0].equals (nombre) && corte[1].equals (contraseña)) {
				retorno = true;
			}
		}
		numeroUsuarios = contador;
		return retorno;
	}

	public String cargarDatos (String name) throws Exception {
		String archivo = "usuario.txt";
		String aux = new String ();
		String linea = null;
		int contador = 0;
			BufferedReader br = new BufferedReader (new FileReader (archivo));
			while ((aux = br.readLine ()) != null) {
				contador++;
				String corte[];
				corte = aux.split ("#");
				if (corte[0].equals (name)) {
					linea = aux;
				}
			}
			numeroUsuarios = contador;
			return linea;
	}

	public String guardarDatos (String Name, String nombre, String clave, String mail, String fono, String movil) throws FileNotFoundException, IOException {
		String archivo = "usuario.txt";
		String aux = new String ();
		String linea = new String ();
		linea = "error";
		int cont = 0;
		try {
			BufferedReader in = new BufferedReader (new FileReader (archivo));
			while (true) {
				aux = in.readLine ();
				if (aux == null) {
					break;
				}
				else {
					cont++;
					String corte[];
					corte = aux.split ("#");
					if (!corte[0].equals (Name)) {
						Usuario user = new Usuario (corte[0], corte[1], corte[2], corte[3], corte[4]);
						usuarios.add (user);
					}
					//System.out.println (corte[0]);
				}
			}
			Usuario user = new Usuario (nombre, clave, mail, fono, movil);
			usuarios.add (user);
			in.close ();
			File fichero = new File ("usuario.txt");
			fichero.delete ();

			FileWriter fichero2 = null;
			PrintWriter pw = null;
			fichero2 = new FileWriter ("usuario.txt");
			pw = new PrintWriter (fichero2);


			for (int i = 0; i < usuarios.size (); i++) {
				Usuario ayuda = new Usuario ();
				ayuda = (Usuario) usuarios.get (i);
				nombre = ayuda.getNombre ();
				clave = ayuda.getClave ();
				mail = ayuda.getMail ();
				fono = ayuda.getFono ();
				movil = ayuda.getMovil ();
				pw.println (nombre + "#" + clave + "#" + mail + "#" + fono + "#" + movil);
			}

			pw.close ();

			return linea;
		}
		catch (Exception e) {
			System.out.println ("Error");
		}
		return linea;
	}

}
